<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
//         测试并总结数组的每个方法的功能，参数，返回值，是否改变原数据
//     - 朗读并背诵全文
        // - arr.push()
        // 功能：向数组的最后插入新数据
        // 参数：要插入的数据，可以是无限个
        // 返回值：插入数据之后的数组的长度
        // 是否改变原数组：是
        // - arr.unshift()
        // 功能：向数组的开头插入新数据
        // 参数：要插入的数据，可以是无限个
        // 返回值：插入数据之后的数组的长度
        // 是否改变原数组：是
        // - arr.pop()
        // 功能：删除最后一位
        // 返回值：返回删除后的新数组
        // 是否改变原数组：是
        // - arr.shift()
        // 功能：删除的第一位
        // 返回值：返回删除后的新数组
        // 是否改变原数组：是
        // - arr.slice()
        // 功能：截取
        // 参数：要截取的索引，从第m位截到第n位的前一个，如果n省略，表示截到最后
        // 返回值：被截取的数组
        // 是否改变原数组：否
        // - arr.join()
        // 功能：将数组的数据按照指定字符连接，并转字符
        // 参数：可以不写，可以传入字符和数字
        // 返回值：按照指定字符连接的字符
        // 是否改变原数组：否
        // - arr.reverse()
        // 功能：翻转数组
        // 返回值：翻转后的数组
        // 是否改变原数组：是
        // - arr.concat()
        // 功能：合并
        // 参数：可以是任意个，任意数据，但只能解析一维数组
        // 返回值：合并之后的数组
        // 是否改变原数组：否
        // - arr.sort()
        // 功能：排序
        // 参数：回调函数
        //     回调函数自身有两个形参
        //     回调函数需要有返回值：两个形参的差
        // 返回值： 按字符的排序规则排序后的数组
        // 是否改变原数组：是
// 3. 定义一个30项的数组，数组的每一项要求都是6，每间隔5个数字，求出这五个数的平均值
        // ;(function (){
        //     var arr = [];
        //     for(var i=0; i<30; i++){
        //         arr[i]= 6;
        //     }
        //     console.log(arr);

        //     var a = [];
        //     for(var i=0; i<arr.length; i+=5){
        //         a.push(arr.slice(i,i+5));
        //     }
        //     console.log(a);

        //     var sum = 0;
        //     var b = [];
        //     var res = 0;
        //     for(var i in a){
        //         b = a[i];
        //     }
        //     for(var j=0; j<b.length; j++){
        //         sum += b[j];
        //         console.log(b[j]);
        //     }
        //     res = sum / b.length;
        //     console.log(res);
        // })();
        
// 4. 通过循环制造一个5 x 5的二维数组，这个数组中的数据是hello，试编程
//     - [[],[],[],[],[]]
        // var arr = [];
        // for(var i = 0; i < 5; i++){
        //     var a = [];
        //     for(var k = 0 ; k < 5 ; k ++){
        //          a.push("hello");
        //     }
        //     arr.push(a);
        //  }

        // console.log(arr);
// 5. 编写函数 map(arr)，要求把数组中的每一位数字都增加30%
        // var arr = [5,16,24,36,49,57,68;71,83,92]
        // function map(arr){
        //     for(var i = 0;i<arr.length;i++){
        //         arr[i]*=(1+0.3);
        //     }
        //     return arr;
        // }
        // console.log(map(arr));
// 6. 编写函数 has(arr, 60)，要求判断数组中是否存在60这个元素，返回布尔类型
        // var arr = [5,15,21,35,46,57,60,75,82,92];
        // function has(a,num){
        //     for(var i in a){
        //         if(a[i] === num){
        //             return true
        //         }
        //     }
            // return false
        // }
        // console.log(has(arr,60));
// 7. 编写函数 norepeat(arr)，要求将数组的重复元素去掉，并返回新的数组
        // var arr = [1,1,2,3,4,4,5,6,6,7,8,9,9];
        // function norepeat(arr) {
        //     for (var i = 0; i < arr.length - 1; i++) {
        //         for (var j = i + 1; j < arr.length; j++) {
        //             if (arr[i] == arr[j]) {
        //                 arr.splice(j, 1);
        //             }
        //         }
        //     }
        //     return arr;
        // }
        // console.log(norepeat(arr));
// 8. 有一个从小到大排好序的数组。现输入一个数，要求按原来的规律将它插入数组中
        // var arr = [1, 2, 3, 4, 5, 7, 9];
        // function fn(num){
        //     if(num > arr[arr.length - 1]){
        //         arr.push(num);
        //         return arr;
        //     }else{
        //         for(var i = 0; i < arr.length; i++){
        //             if(num <= arr[i]){
        //                 arr.splice(i, 0, num);
        //                 break;
        //             }

        //         }
        //         return arr;
        //     }
        // }
        // console.log(fn(6));
    </script>
</body>
</html>